package cn.iocoder.yudao.module.social.service.container;

import cn.iocoder.yudao.module.social.dal.dataobject.container.ContainerDO;

/**
 * 容器权限服务接口
 *
 * @author 芋道源码
 */
public interface ContainerPermissionService {

    /**
     * 检查用户是否可以查看容器
     *
     * @param container 容器
     * @param userId 用户ID
     * @return 是否可以查看
     */
    boolean canView(ContainerDO container, Long userId);

    /**
     * 检查用户是否可以在容器中发布内容
     *
     * @param container 容器
     * @param userId 用户ID
     * @return 是否可以发布
     */
    boolean canPost(ContainerDO container, Long userId);

    /**
     * 检查用户是否可以管理容器
     *
     * @param container 容器
     * @param userId 用户ID
     * @return 是否可以管理
     */
    boolean canManage(ContainerDO container, Long userId);

    /**
     * 检查用户是否可以删除容器
     *
     * @param container 容器
     * @param userId 用户ID
     * @return 是否可以删除
     */
    boolean canDelete(ContainerDO container, Long userId);

    /**
     * 检查用户是否可以编辑容器
     *
     * @param container 容器
     * @param userId 用户ID
     * @return 是否可以编辑
     */
    boolean canEdit(ContainerDO container, Long userId);

}
